2-11 流感再現
從新加坡回來台灣後,天氣漸漸轉冷,看的出來大家在路上所穿的衣物開始變厚。
「飛哥!疾管署寄了封郵件過來,上面似乎說有一連串的數據要找你分析下。」小博在例行收信時,除了幫飛哥整理電子信箱,也會整理信息來免去飛哥一封一封看的時間。
信中寫道:「飛先生,您好,本署自西元1999年成立以來,每年會定期收集並整理流行病的好發期間與預防資訊,供民眾參考,近來疑似有不少民眾出現異常咳嗽情形,鑒於本署近期人力短缺,想請您協助分析流感的相關資料,感謝。」
「小博,來你看看,看的出來這些資料有甚麼特徵嗎?」飛哥將疾管署的附件打開來展示。
小博看了一眼就答出:「這個資料好像有規律的起伏,在夏天的時候數值低,到冬天的時候就又變高了,而且每一年都有這樣的規律呢!」
「對啊!從資料上我們可以很容易的看出每12個月就會經歷一次循環,這種具備『數據按順序排列』與『數據有規律的重現性』的資料特徵,是非常適合用『時間序列分析』來研究的。」飛哥直接點名這次的分析主軸。
「那除了這種一眼就可以明顯看出規律的資料,還有哪些適合資料這種分析手法呢?看得出有規律,但不知道規律是多少也可以嗎?」小博疑惑的問道。
「比如說兩個不同大小的齒輪鑲嵌時,因為轉一定的圈數後就會重回到最初兩顆齒輪相碰的點,這時在不知道齒數的情形下,也可以使用這種手法,藉由不斷平移資料來找出一個循環的時間長度。統計上我們稱這樣的數據有『自相關』,也就是自己跟自己相隔一定時間點後,狀態再度重現的情況,如果數據沒有自相關的話,就非常不適合用時間序列。」飛哥仔細地說明著。
小博若有所思地想著,突然說道:「既然只要具備『數據按順序排列』與『數據有規律的重現性』的特徵,那在海溝聲納探測的『深度』這種距離類型的資料應該也可以吧!」
「不錯,確實可以,只要有按照順序,且資料跟自己有自相關的話,也可以使用時間序列分析。」說罷,飛哥印出疾管署遞來的資料,開始端詳其中意義。
Python程式時間
x=c(154,123,79,87,63,54,32,13,28,69,86,75,
112,100,89,82,76,56,48,21,22,38,73,85,
139,130,93,90,73,60,44,21,26,47,59,69,
132,110,99,72,74,52,43,28,29,48,63,75,
135,120,93,90,66,67,47,31,25,47,69,59)
year=c('2015','2016','2017','2018','2019')
month=c('01','02','03','04','05','06','07','08','09','10','11','12')
k=c('')
for (i in c(1:length(year))){
for (j in c(1:length(month))){
data=paste(year[i], month[j], sep="-")
k=c(k,data)}}
k=k[-1]
k
influenza_people <- ts(x, frequency=12, start=c(2015,1))
plot.ts(influenza_people)
後記:時間序列的套件在R軟體比Python還要完整,因此這個章節主要會用R進行呈現喔!(Python還是可以做啦,只是不太方便就是了~~)